package springmvc.param.config;

//import com.springmvc.json.EncodingInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

/**
 * description:
 * 项目的配置类
 *
 * 1. @Configuration 定义配置类并加入IOC容器
 * 2. @ComponentScan 扫描路径，将Controller加入IOC容器
 * 3. @Bean 修饰方法，将方法返回结果 handlerMapping handlerAdapter 放入IOC容器
 * 4. @EnableWebMvc 添加JSON格式转换器，用于解析前端POST请求体中的JSON数据，否则无法接收JSON格式
 * 5. @EnableWebMvc 会自动添加 handlerMapping、handlerAdapter、JSON解析器，无需手动编写@Bean
 */

@EnableWebMvc
@Configuration
@ComponentScan({"springmvc.param.controller"})
public class MvcConfig {

//    implements WebMvcConfigurer
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(new EncodingInterceptor());
//    }

    // TODO：@EnableWebMvc会自动完成以下功能，无需手动添加：

//    @Bean
//    public RequestMappingHandlerMapping handlerMapping(){
//       return new RequestMappingHandlerMapping();
//    }
//
//    @Bean
//    public RequestMappingHandlerAdapter handlerAdapter(){
//        return new RequestMappingHandlerAdapter();
//    }
}
